/**
 * Yolema.com Inc.
 * Copyright (c) 2011-2012 All Rights Reserved.
 */
package org.grayrabbit.pay.chinapnr.common;

import java.util.HashMap;
import java.util.Map;

/**
 * 常量
 * 
 * @author wy
 * @version $Id: PnrConstants.java, v 0.1 2012-10-5 上午9:36:20 wy Exp $
 */
public class PnrConstants {

    /**交易接口类型定义 电话支付*/
    public static final String               TRADE_TELPAY      = "TelPay";

    /**交易接口类型定义 电话退款*/
    public static final String               TRADE_TELREFUND   = "TelRefund";

    /**版本号*/
    public static final String               TRADE_VERSION     = "10";

    /**函数返回值*/
    public final static Map<Integer, String> RETURN_RESULT_MAP = new HashMap<Integer, String>();

    /**电话支付交易请求返回值列表*/
    public final static Map<String, String>  TRADE_REQUEST_MAP = new HashMap<String, String>();

    /**电话支付失败后台返回代码列表*/
    public final static Map<String, String>  TRADE_FAIL_MAP    = new HashMap<String, String>();

    static {
        RETURN_RESULT_MAP.put(0, "本次调用成功");
        RETURN_RESULT_MAP.put(-100, " 环境变量'NPCDIR'未设置,需要在在Linux或Unix上设置环境变量NPCDIR");
        RETURN_RESULT_MAP.put(-101, "商户密钥文件不存在或无法打开 ，设置密钥文件为可写方式。");
        RETURN_RESULT_MAP.put(-102, "密钥文件格式错误,可能商户的密钥文件在传输途中有误。");
        RETURN_RESULT_MAP.put(-103, "参数错误,请检查参与签名的参数是否正确。");
        RETURN_RESULT_MAP.put(-112, "公钥文件不存在或无法打开,设置密钥文件为可写方式。");
        RETURN_RESULT_MAP.put(-113, "公钥文件格式错误,可能公钥文件在传输途中有误。");
        RETURN_RESULT_MAP.put(-301, " 验证签名出错,请检查参与签名的参数是否正确。");
        RETURN_RESULT_MAP.put(-401, "参与签名的数据体超过规定长度");

        TRADE_REQUEST_MAP.put("00", "交易成功");
        TRADE_REQUEST_MAP.put("01", "版本号错误,请检查电话支付分账平台接口版本");
        TRADE_REQUEST_MAP.put("02", "商户号格式错误");
        TRADE_REQUEST_MAP.put("03", "商户日期格式错误");
        TRADE_REQUEST_MAP.put("04", "订单号格式错误");
        TRADE_REQUEST_MAP.put("05", "交易金额格式错误");
        TRADE_REQUEST_MAP.put("06", "网关号格式错误");
        TRADE_REQUEST_MAP.put("07", "签名信息格式错误");
        TRADE_REQUEST_MAP.put("08", "网关号在黑名单");
        TRADE_REQUEST_MAP.put("09", "网关不在网关列表中");
        TRADE_REQUEST_MAP.put("10", "金额超过或小于限额");
        TRADE_REQUEST_MAP.put("13", "系统错误");
        TRADE_REQUEST_MAP.put("14", "非法商户号");
        TRADE_REQUEST_MAP.put("15", "商户号已关闭");
        TRADE_REQUEST_MAP.put("16", "非法网关号");
        TRADE_REQUEST_MAP.put("17", "网关号已关闭");
        TRADE_REQUEST_MAP.put("19", "无对应原始交易记录");
        TRADE_REQUEST_MAP.put("20", "原交易失败");
        TRADE_REQUEST_MAP.put("21", "交易金额错误");
        TRADE_REQUEST_MAP.put("28", "数据操作错误");
        TRADE_REQUEST_MAP.put("29", "交易状态错误");
        TRADE_REQUEST_MAP.put("31", "卡信息错误");
        TRADE_REQUEST_MAP.put("32", "回调地址不能为空");
        TRADE_REQUEST_MAP.put("33", "卡BIN错误");
        TRADE_REQUEST_MAP.put("34", "有效期格式错误");
        TRADE_REQUEST_MAP.put("35", "CVV2格式错误");
        TRADE_REQUEST_MAP.put("36", "证件类型格式错误");
        TRADE_REQUEST_MAP.put("37", "证件类型不能为空(部分银行需要）");
        TRADE_REQUEST_MAP.put("38", "证件号码格式错误");
        TRADE_REQUEST_MAP.put("39", "姓名长度超过限制");
        TRADE_REQUEST_MAP.put("40", "姓名不能为空(部分银行需要)");
        TRADE_REQUEST_MAP.put("41", "验签名失败");
        TRADE_REQUEST_MAP.put("42", "发送或接收交易数据失败");
        TRADE_REQUEST_MAP.put("43", "原始交易商户日期格式错误");
        TRADE_REQUEST_MAP.put("44", "原始交易订单号格式错误");
        TRADE_REQUEST_MAP.put("45", "交易类型错误");
        TRADE_REQUEST_MAP.put("46", "请求参数异常");
        TRADE_REQUEST_MAP.put("47", "重复退款");
        TRADE_REQUEST_MAP.put("48", "签名失败");
        TRADE_REQUEST_MAP.put("49", "卡信息解密失败");
        TRADE_REQUEST_MAP.put("50", "支付信息错误");
        TRADE_REQUEST_MAP.put("51", "无效卡号");
        TRADE_REQUEST_MAP.put("52", "余额或信用额度不足");
        TRADE_REQUEST_MAP.put("53", "卡有效期错误");
        TRADE_REQUEST_MAP.put("54", "交易取消");
        TRADE_REQUEST_MAP.put("55", "数据接收错误");
        TRADE_REQUEST_MAP.put("56", "交易超时");
        TRADE_REQUEST_MAP.put("57", "超限额");
        TRADE_REQUEST_MAP.put("58", "非本行卡");
        TRADE_REQUEST_MAP.put("59", "电话授权忙音");
        TRADE_REQUEST_MAP.put("60", "授权次数超限");
        TRADE_REQUEST_MAP.put("61", "交易失败，转人工处理");
        TRADE_REQUEST_MAP.put("62", "证件号码不符,身份证号码检查失败");
        TRADE_REQUEST_MAP.put("63", "户名不符,户名检查失败");
        TRADE_REQUEST_MAP.put("64", "查发卡行,卡状态非法，需持卡人联系发卡行");
        TRADE_REQUEST_MAP.put("65", "无效CVV2");
        TRADE_REQUEST_MAP.put("66", "无效商户");
        TRADE_REQUEST_MAP.put("67", "过期的卡");
        TRADE_REQUEST_MAP.put("69", "挂失卡");
        TRADE_REQUEST_MAP.put("70", "被窃卡");
        TRADE_REQUEST_MAP.put("71", "该卡未启用");
        TRADE_REQUEST_MAP.put("72", "假卡");
        TRADE_REQUEST_MAP.put("73", "原始交易数据中缺少有效期或缺少卡号");
        TRADE_REQUEST_MAP.put("74", "其他");
        TRADE_REQUEST_MAP.put("88", "银行交易失败");
        TRADE_REQUEST_MAP.put("89", "银行批结不受理交易");
        TRADE_REQUEST_MAP.put("99", "处理中");
        TRADE_REQUEST_MAP.put("XX", "账务类错误");

        TRADE_FAIL_MAP.put("pnr001", "支付信息错误");
        TRADE_FAIL_MAP.put("pnr002", "无效卡号");
        TRADE_FAIL_MAP.put("pnr003", "余额或信用额度不足");
        TRADE_FAIL_MAP.put("pnr004", "卡有效期错误");
        TRADE_FAIL_MAP.put("pnr005", "交易取消");
        TRADE_FAIL_MAP.put("pnr006", "数据接收错误");
        TRADE_FAIL_MAP.put("pnr007", "交易超时");
        TRADE_FAIL_MAP.put("pnr008", "超限额");
        TRADE_FAIL_MAP.put("pnr009", "非本行卡");
        TRADE_FAIL_MAP.put("pnr010", "电话授权忙音");
        TRADE_FAIL_MAP.put("pnr011", "授权次数超限");
        TRADE_FAIL_MAP.put("pnr012", "交易失败，转人工处理");
        TRADE_FAIL_MAP.put("pnr013", "证件号码不符,身份证号码检查失败");
        TRADE_FAIL_MAP.put("pnr014", "户名不符,户名检查失败");
        TRADE_FAIL_MAP.put("pnr015", "查发卡行,卡状态非法，需持卡人联系发卡行");
        TRADE_FAIL_MAP.put("pnr016", "无效CVV2");
        TRADE_FAIL_MAP.put("pnr017", "无效商户");
        TRADE_FAIL_MAP.put("pnr018", "过期的卡");
        TRADE_FAIL_MAP.put("pnr019", "重复交易");
        TRADE_FAIL_MAP.put("pnr020", "挂失卡");
        TRADE_FAIL_MAP.put("pnr021", "被窃卡");
        TRADE_FAIL_MAP.put("pnr022", "该卡未启用");
        TRADE_FAIL_MAP.put("pnr023", "假卡");
        TRADE_FAIL_MAP.put("pnr998", "原始交易数据中缺少有效期或缺少卡号（该异步失败码只供平安批扣交易使用）");
        TRADE_FAIL_MAP.put("pnr999", "其他");
    }

}
